package br.com.guiav6.sisguia.entity;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "TB_TIPO_SERVICO")
public class TipoServico implements PersistentObject {
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "ID_TIPO_SERVICO", unique = true, nullable = false)
	private Long id;
	
	private String nome;
	
	@OneToMany(mappedBy = "tipoServico", fetch = FetchType.LAZY,
			//cascade = { CascadeType.PERSIST, CascadeType.MERGE })
			cascade = CascadeType.ALL)
	private List<TipoServicoEmpresa> tipoServicoEmpresaList;
	
	@OneToMany(mappedBy = "tipoServico", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
	private List<Especialidade> especialidadeList;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public List<TipoServicoEmpresa> getTipoServicoEmpresaList() {
		return tipoServicoEmpresaList;
	}

	public void setTipoServicoEmpresaList(List<TipoServicoEmpresa> tipoServicoEmpresaList) {
		this.tipoServicoEmpresaList = tipoServicoEmpresaList;
	}

	public List<Especialidade> getEspecialidadeList() {
		return especialidadeList;
	}

	public void setEspecialidadeList(List<Especialidade> especialidadeList) {
		this.especialidadeList = especialidadeList;
	}

}